#include <iostream>
#include <unsupported/Eigen/Polynomials>

using namespace Eigen;
using namespace std;

int
main()
{
	Vector4d roots = Vector4d::Random();
	cout << "Roots: " << roots.transpose() << endl;
	Eigen::Matrix<double, 5, 1> polynomial;
	roots_to_monicPolynomial(roots, polynomial);
	cout << "Polynomial: ";
	for (int i = 0; i < 4; ++i) {
		cout << polynomial[i] << ".x^" << i << "+ ";
	}
	cout << polynomial[4] << ".x^4" << endl;
	Vector4d evaluation;
	for (int i = 0; i < 4; ++i) {
		evaluation[i] = poly_eval(polynomial, roots[i]);
	}
	cout << "Evaluation of the polynomial at the roots: " << evaluation.transpose();
}
